package com.sheep.admin.controller;

import com.sheep.admin.core.Result;
import com.sheep.admin.core.ResultGenerator;
import org.springframework.context.annotation.Scope;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;


/**
 * @author wangze
 * @date 2020/07/14
 **/
@RestController("/hello")
/**
 * spring中bean的scope属性，有如下5种类型：
 *
 * singleton 表示在spring容器中的单例，通过spring容器获得该bean时总是返回唯一的实例
 * prototype表示每次获得bean都会生成一个新的对象
 * request表示在一次http请求内有效（只适用于web应用）
 * session表示在一个用户会话内有效（只适用于web应用）
 * globalSession表示在全局会话内有效（只适用于web应用）
 * 在多数情况，我们只会使用singleton和prototype两种scope，如果在spring配置文件内未指定scope属性，默认为singleton。
 */
@Scope(value = "singleton")
public class HelloController {


    @GetMapping("/")
    public Result<String> hello() {
        return ResultGenerator.genSuccessResult("hello");
    }
}
